package main

import "fmt"

/*
基本介绍：
在某些情况下，需要声明/定义方法。
比如Person结构体：除了有一些字段外，结构体还有一些行为，比如：可以说话、跑步，
这时就要用方法才能完成

go中的方法是作用在指定的数据类型上的（即：和指定的数据类型绑定），因此自定义类型，都可以有方法，而不仅仅是struct
*/
type A struct {
	Num int
}

//给A类型绑定一份方法
func (a A) test() {
	fmt.Println("test()", a.Num)
}

//使用
func (p A) getSum(n1 int, n2 int) int {
	return n1 + n2
}
func main() {
	//1、test方法和A类型绑定
	//2、test方法只能通过A类型的变量来调用，而不能直接调用，也不能使用其它类型变量来调用

	var b A
	b.test()

	res := b.getSum(10, 20)
	fmt.Println("res=", res)
}
